module.exports = {
  /**
   * 查询多条记录 分页
   * @url admin/kong/sys/getList 前端调用的url参数地址
   * data 请求参数 说明
   * @param {Number}         pageIndex 当前页码
   * @param {Number}         pageSize  每页显示数量
   * @param {Array<Object>}  sortRule  排序规则
   * @param {object}         formData  查询条件数据源
   * @param {Array<Object>}  columns   查询条件规则
   * res 返回参数说明
   * @param {Number}         code      错误码，0表示成功
   * @param {String}         msg       详细信息
   */
  main: async (event) => {
    let { data = {}, userInfo, util, filterResponse, originalParam } = event;
    let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
    let { uid } = data;
    let res = { code: 0, msg: '' };
    // 业务逻辑开始-----------------------------------------------------------
    let dbName = "tm-client";
    let _whereJson = undefined;
    if (!userInfo.role.includes('admin')) {
      if (userInfo.role.includes('ROLE_PSGS')) {
        _whereJson = {

          name: userInfo.nickname

        }
      } else if (userInfo.role.includes('ROLE_PT')) {
        // userInfo.role.includes('ROLE_ZZ') ||
        _whereJson = {

          _id: _.in(userInfo.delivery_company),
        }
      }
      let excludedCompanies = [];

      // 第一组公司：只有65f8237ffe975f7440b02b41用户能看到，其他用户都不能看到
      if (userInfo._id != '65f8237ffe975f7440b02b41') {
        excludedCompanies = excludedCompanies.concat(['佛山市永信餐饮管理有限公司', '佛山市品鲜汇农产品有限公司', '肇庆市赵燕华蔬果有限公司', '端州区1688水果店', '四会市程晖蔬果种植农民专业合作社']);
      }

      // 第二组公司：只有67bb216d2eea6559d2b6a48f用户能看到，其他用户都不能看到
      if (userInfo._id != '67bb216d2eea6559d2b6a48f') {
        excludedCompanies = excludedCompanies.concat(['肇庆宏洋食品有限公司', '广州旺坤餐饮管理服务有限公司', '广州滨圣物业管理有限公司', '深圳市万海源农副产品配送有限公司']);
      }

      // 如果有需要排除的公司且不是基于name的特定查询，则应用过滤条件
      if (excludedCompanies.length > 0 && !(_whereJson != undefined && _whereJson.name != undefined)) {
        _whereJson = {
          ..._whereJson,
          name: _.nin(excludedCompanies)
        };
      }
    }
    res = await vk.baseDao.getTableData({
      dbName,
      data,
      whereJson: _whereJson,
      sortArr: [{ "name": "name", "type": "desc" }],
      foreignDB: [
        {
          dbName: "tm-client-price",
          localKey: "_id",
          foreignKey: "client_id",
          as: "price_list",
          sortArr: [{ "name": "category_name", "type": "desc" }],
          limit: 100,
        },
        {
          dbName: "uni-id-users",
          localKey: "_id",
          foreignKey: "delivery_company",
          foreignKeyType: "array",
          fieldJson: {
            _id: true,
            nickname: true,
          },
          as: "userInfo",
          limit: 50
        }

      ],

    });
    return res;
  }

}
